#include <stdio.h>
#include <stdlib.h>

/*
    栈数据模版
*/
struct _stack {
    int *p;         // 栈容器，不要直接修改
    int size;       // 栈元素量
    int top;        // 0栈内表示无元素
    int capacity;    // 栈最大容纳元素
};

typedef struct _stack* Stack;

/* 
    初始化栈
    @param: initSize    栈大小
*/
Stack StackInit(int initSize);

/*
    入栈
    @param: 
        stack       栈类
        element     入栈元素
*/
void StackPush(Stack stack, int element);

/*
    取栈顶元素
    @param: stack   栈类
    @return: int    栈顶元素
*/
int StackTop(Stack stack);

/*
    出栈
    @param: stack   栈类
*/
void StackPop(Stack stack);

/*
    异常输出
*/
void ShowInfo(const char* message);